��ланки на документи
Модулът за бланки на документи на OBS ERP Ви позволява да представяте информацията, съхранена в различните модули, в PDF документи. Например: можете да създадете персонализирана бланка за модул Финанси ⇨ Приходи, която да съдържа брандирана фактура, съобразена с вътрешното законодателство или шаблон за модул "Договори", който съдържа информация за стандартния договор, който подписвате с вашите клиенти.
OBS ERP е оборудван с генератор на документи на база бланки. Той може да конвертира променливите в шаблоните в текст. Нека вземем модул "Договори" за пример. Можем да наречем променлива в бланката - "~~date_of_issue~~" (дата на издаване, която кореспондира със съответното поле в модул "Договори"). OBS ERP ще конвертира променливата в действителната дата на издаване на договора. Този процес е описан подробно долу.
Забележка: Генераторът на документи на база бланки се нарича OB1 и е разработен от OBS ERP.
Бланките за документи могат да се намерят чрез Админ ⇨ Бланки ⇨ Документи. OBS ERP се предлага с набор от бланки по подразбиране за някои от основните модули (фактури, оферти, отпуски, и т.н.). Можете да редактирате вградените бланки, така че да отговарят на вашите нужди.
Забележка: Не забравяйте да направите резервно копие на оригиналната бланка, преди да нанесете промени.
Нека отворим една от най-сложните бланки, зададени по подразбиране - Приходи (Фактури), до която можем да стигнем чрез Админ ⇨ Бланки ⇨ Документи ⇨ Invoice ⇨ Редактирай (опцията "Редактирай" се появява, когато кликнем върху идентификационния номер на бланката - 1). Шаблонът е показан на Фиг. 1.

Фиг. 1
Както се вижда, можете да настроите вида и големината на шрифта, да добавите горен и долен колонтитул и да контролирате номерацията на страниците. Дългият син бутон "Модули" (най-долу) се използва за да се уточни в кои модули ще се използва съответната бланка.
В полето съдържание, можем да видим какво съдържа бланката и да нанесем нужните промени. (Фиг. 2)

Фиг. 2
За да промените съдържанието на бланката, трябва първо да запазите промените си (зеления бутон "Запиши"), след което да презаредите бланката. Бутонът за презареждане е показан на Фиг. 2 (ограден в синьо). За да видите крайния резултат, отворете целевия модул (в този случай "Приходи"), създайте запис и кликнете върху PDF бутона над записа (Фиг. 3). OBS ERP ще изготви PDF документ, използвайки данните от вашата бланка и тези от записа.

Фиг. 3
Процесорът за бланки поддържа следните характеристики:
Ключова дума, която може да преведете в модул "Преводи"
Затварящ символ
Пример:
Друг пример:
~.utranslate^ ~category_id~ .~
~.sum^ ~num1~ 0 .~
Променливите са затворени с ~
Импортиране на бланка
Можете да импортирате една бланка в друга, използвайки следния синтаксис:
OBS ERP е оборудван с генератор на документи на база бланки. Той може да конвертира променливите в шаблоните в текст. Нека вземем модул "Договори" за пример. Можем да наречем променлива в бланката - "~~date_of_issue~~" (дата на издаване, която кореспондира със съответното поле в модул "Договори"). OBS ERP ще конвертира променливата в действителната дата на издаване на договора. Този процес е описан подробно долу.
Забележка: Генераторът на документи на база бланки се нарича OB1 и е разработен от OBS ERP.
Бланките за документи могат да се намерят чрез Админ ⇨ Бланки ⇨ Документи. OBS ERP се предлага с набор от бланки по подразбиране за някои от основните модули (фактури, оферти, отпуски, и т.н.). Можете да редактирате вградените бланки, така че да отговарят на вашите нужди.
Забележка: Не забравяйте да направите резервно копие на оригиналната бланка, преди да нанесете промени.
Нека отворим една от най-сложните бланки, зададени по подразбиране - Приходи (Фактури), до която можем да стигнем чрез Админ ⇨ Бланки ⇨ Документи ⇨ Invoice ⇨ Редактирай (опцията "Редактирай" се появява, когато кликнем върху идентификационния номер на бланката - 1). Шаблонът е показан на Фиг. 1.

Фиг. 1
Както се вижда, можете да настроите вида и големината на шрифта, да добавите горен и долен колонтитул и да контролирате номерацията на страниците. Дългият син бутон "Модули" (най-долу) се използва за да се уточни в кои модули ще се използва съответната бланка.
В полето съдържание, можем да видим какво съдържа бланката и да нанесем нужните промени. (Фиг. 2)

Фиг. 2
За да промените съдържанието на бланката, трябва първо да запазите промените си (зеления бутон "Запиши"), след което да презаредите бланката. Бутонът за презареждане е показан на Фиг. 2 (ограден в синьо). За да видите крайния резултат, отворете целевия модул (в този случай "Приходи"), създайте запис и кликнете върху PDF бутона над записа (Фиг. 3). OBS ERP ще изготви PDF документ, използвайки данните от вашата бланка и тези от записа.

Фиг. 3
Процесорът за бланки поддържа следните характеристики:
- променливи
- функции
- заместване на текст
- цикъл
- условна оценка
Показване на всички налични променливи
В зависимост от модула, за който подготвяте бланка, ще имате различен набор от променливи, които ще имате възможността да използвате. За да проверите кои променливи са налични, напишете следната функция където и да е в бланката, запишете промените и презаредете.
В зависимост от модула, за който подготвяте бланка, ще имате различен набор от променливи, които ще имате възможността да използвате. За да проверите кои променливи са налични, напишете следната функция където и да е в бланката, запишете промените и презаредете.
~.show_vars.~
Резултатът ще бъде видим в целевия модул, както е описано по-горе. Например:| VAR | VALUE |
|---|---|
| amount | 8700.00 |
| contract_id | 2015-09-23 №28 Test Customer |
| ... | .... |
Сега знаем имената на променливите. Можем да изкараме на показ стойността на променлива, използвайки следния затварящ символ:
~~variable~~
Пример:
~~invoice_id~~
Резултат (номер на фактура):
14
Ключова дума, която може да преведете в модул "Преводи"
Затварящ символ
~_variable_~
Пример:
~_qty_~
Създаване на таблица със стойности
- Таблица с автоматично оформление:
Затварящ символ:
Пример:~#table_name^table #~
Резултат:~#invoice_items^table;#~
# name qty price 1 Test 1 100
Можете да пропуснете колона, като добавите ключовата дума за пропускане, както е показано по-дол:
~#invoice_items^table; skip:photo; #~ (така ще се пропусне колоната) - Таблица с персонализирани колони
Затварящ символ:
Пример:~#table_name^table; ~column_one~ ~column_two~ ~column_three~ #~~#invoice_items^table; ~SEQ~ ~name~ ~qty~ ~price_per_unit~ ~discount~ ~line_total~#~~SEQ~ ще създаде колона с последователни номера, започващи от 1.
Резултат:# name Quantity Price per unit Discount Total 1 Test 1 100 1 99
- Функции
Данните от колоната могат да бъдат предадени на функция. Например:
За да покажем снимка в таблицата използваме функцията showImageInTD:
~#quotation_items^table; ~SEQ~ ~.showImageInTD^~product_image~,products,3.5.~ ~price_per_unit~ #~
Можете да използвате всяка функция за обработка на данни в таблицата.
- Таблица със заглавна част
Тази секция показва как да създадете таблици със заглавна част, като тази по-долу:
✎ Създайте нова бланка за заглавната част на таблицата. Името на бланката ще бъде използвана по-късно. Пример:
# Date Principle Monthly installments Taxes and commissions Remaining
PrincipleInterest Principle Amount
✎ Генерирайте таблицата, използвайки следния синтаксис:
Където:~#invoice_items^table_with_custom_header:thead_template;~name~ ~qty~ ~price_per_unit~ ~discount~ ~line_total~#~
✎ table_with_custom_header - името на оформлението
✎ thead_template - името на бланката, създадена, както е описано в точка 1
✎ ~name~ ~qty~ ~price_per_unit~ ~discount~ ~line_total~ - името на колоните. Може да се пропусне.
Показване на стойност в случай, че съществува
Затварящ символ:~?variable; ?~
~?variable; displayed if set ^ displayed if not set ?~
Пример:
~?description; This is a description: ~~description~~ ?~
В случай, че не съществува: ~?description; This is a description: ^ Text displayed in case description is not set ~~description~~ ?~
Показване на променливи, съдържащи HTML код
Функция: open_templateПример:
{{ open_template (index $.MainRecord "comment") }}
Функция
~.function_name^param1,param2,......~
Пример:
~.translate^bottle.~
Друг пример:
~.utranslate^ ~category_id~ .~
~.sum^ ~num1~ 0 .~
Променливите са затворени с ~
Импортиране на бланка
~.import^template_name.~
Където "template_name" iе името на бланката, която искате да импортирате
Друго приложение: Можете да използвате езика за шаблони Hugo, за да имплементирате вашите персонализирани логики във вашите бланки
Форматиране на дата
✎ Форматиране на дата и час
Пример:
~.format_time_to_date^~created_at~.~
~.format_time_to_minute^~created_at~.~